A conventional data storage system executes data storage software that reads data from and writes data to an array of hard disk drives (HDDs). Some data storage software provides block-based storage while other data storage software provides file-based storage.
When the data storage software writes data to a HDD of the array, much of the write time is related to the mechanical nature of rotating platters and moving heads of the HDD. That is, much of the time is spent waiting for HDD components to travel to particular locations, and the time to actually write data to the HDD is only a small portion of the overall write time. As a result, the time to write data is virtually the same regardless of whether the write operation writes an 8 kilobyte (KB) block of data or a 16 KB block of data. Consequently, software algorithms optimized for use with HDDs commonly write larger blocks of data to minimize the number of input/output (I/O) operations. For example, rather than performing multiple 8 KB write operations, the data storage software can perform a single 16 KB write operation in roughly the same amount of time.